//package com.example.fresh_fruit.util;
//
//import com.auth0.jwt.JWT;
//import com.auth0.jwt.JWTVerifier;
//import com.auth0.jwt.algorithms.Algorithm;
//import com.auth0.jwt.exceptions.JWTDecodeException;
//import com.auth0.jwt.interfaces.DecodedJWT;
//
//import java.util.Calendar;
//import java.util.Date;
//
///**
// * 项目名 garmentFactory
// * 文件名 JavaWebToken
// * 创建时间  2022/7/7 21:03
// */
//public class TokenUtil {
//    /**
//     * 过期时间为一个小时
//     */
//    private static final int EXPIRE_TIME = 60 * 60 * 1000;
//    /**
//     * token私钥  这里的密码随便写就可以
//     */
//    private static final String TOKEN_SECRET = "asffcbxg";
//    private static final String userInfo = "id";
//
//    /**
//     * 签发对象：这个用户的id
//     * 签发时间：现在
//     * 有效时间：30分钟
//     * 载荷内容：暂时设计为：这个人的名字
//     * 加密密钥：这个人的id加上一串字符串
//     *
//     * @return
//     */
//
//    //生成Token(在登陆的方法上调用)
//    public static String createToken(int id) {
//        Calendar nowTime = Calendar.getInstance();
//        nowTime.add(Calendar.MINUTE, EXPIRE_TIME);
//        Date expiresDate = nowTime.getTime();
//
//        return JWT.create()
//                //有效时间
//                .withExpiresAt(expiresDate)
//                //携带的信息
//                .withClaim(userInfo, id)
//                //加密
//                .sign(Algorithm.HMAC256(TOKEN_SECRET));
//    }
//
//    /**
//     * 检验合法性
//     * 验证token是否有效
//     *
//     * @param token
//     * @throws
//     */
//    public static boolean verify(String token) {
//        try {
//            Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET);
//            JWTVerifier verifier = JWT.require(algorithm).build();
//            DecodedJWT decodedJWT = verifier.verify(token);
//            return true;
//        } catch (Exception e) {
//            System.out.println("Token超时,需要重新登录");
//        }
//        return false;
//    }
//
//    /**
//     * 获取签发对象
//     *
//     * @return
//     */
//    public static Integer getAudience(String token) {
//        try {
//            return JWT.decode(token).getClaim(userInfo).asInt();
//        } catch (JWTDecodeException j) {
//            //这里是token解析失败
//            return null;
//        }
//    }
//}
//
//
